/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Usuarios;


import Clientes.cCliente;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

/**
 *
 * @author humberto
 */
public class bdUsuarios {

    public static boolean agregarUsuario(cUsuario u) throws SQLException, ClassNotFoundException
    {
        java.sql.Statement estado = null;
        estado = bdControlador.BdControlador.establecerConexion().createStatement();
        estado.executeUpdate("INSERT INTO usuarios (codigo, dni, pNombre, sNombre, pApellido, sApellido,"
                + " tipo, usuario, password) VALUES"
                + "(" + u.getCodigo() + "," + u.getDni() + ",'" + u.getpNombre()
                             + "', '" + u.getsNombre() + "','" + u.getpApellido() +"','"+
                             u.getsApellido() + "','" + u.getTipo() + "','" + u.getUsuario() + "','"
                             + u.getPassword() + "');");
        return true;
    }
    
    public static boolean editarUsuario(cUsuario usuario) throws SQLException, ClassNotFoundException
    {
        java.sql.Statement estado = null;

        estado = bdControlador.BdControlador.establecerConexion().createStatement();

        estado.executeUpdate("UPDATE usuarios SET dni ='" + usuario.getDni() +
                "', pNombre='" + usuario.getpNombre() + "',sNombre='" + usuario.getsNombre() +
                "', pApellido='"  + usuario.getpApellido() + "', sApellido='" + usuario.getsApellido() +
                "', tipo='" + usuario.getTipo() +  "', usuario ='" + usuario.getUsuario() +
                "', password ='" + usuario.getPassword()  +
                "' WHERE codigo = '" + usuario.getCodigo() + "';" );
           return true;     
    }

    public static boolean acceder(String us, String pass) throws ClassNotFoundException, SQLException
    {
        java.sql.Statement estado = null;

        estado = bdControlador.BdControlador.establecerConexion().createStatement();

        ResultSet resultado = estado.executeQuery("SELECT * FROM usuarios WHERE " +
                "usuario" + " ='" + us + "' AND" + " password " + "= '" + pass + "';");
        
        
        if (resultado.first())
            return true;

        return false;
    }
    
    public static cUsuario retornaUsuario(int codigo)throws ClassNotFoundException, SQLException{
        
        java.sql.Statement estado = null;

        estado = bdControlador.BdControlador.establecerConexion().createStatement();

        ResultSet resultado = estado.executeQuery("SELECT * FROM usuarios WHERE " +
                "codigo" + " ='" + codigo + "';");
        
        resultado.first();
        cUsuario usuario = new cUsuario();
        usuario.setCodigo(Integer.parseInt(resultado.getString(1)));
        usuario.setDni(resultado.getString(2));
        usuario.setpNombre(resultado.getString(3));
        usuario.setsNombre(resultado.getString(4));
        usuario.setpApellido(resultado.getString(5));
        usuario.setsApellido(resultado.getString(6));
        usuario.setTipo(resultado.getString(7));
        usuario.setUsuario(resultado.getString(8));
        usuario.setPassword(resultado.getString(9));
                
        
    return usuario;
    }
    
    public static boolean existeUsuario(String us, int dni)throws ClassNotFoundException, SQLException
    {
    
       java.sql.Statement estado = null;

        estado = bdControlador.BdControlador.establecerConexion().createStatement();

        ResultSet resultado = estado.executeQuery("SELECT * FROM usuarios WHERE " +
                "usuario" + " ='" + us + "' OR" + " dni " + "= '" + dni + "';");

        
        if (resultado.first())
            return true;

        return false;
    
    }
    
    public static Vector<Vector<String>> seleccionarTodo() throws SQLException, ClassNotFoundException{
        
       Vector <Vector<String>> usuarios = new Vector<Vector<String>>();
        Connection conexion = bdControlador.BdControlador.establecerConexion();
        Statement estado = conexion.createStatement();
        
        ResultSet consulta = estado.executeQuery("SELECT * from usuarios");
        
        while(consulta.next()){
            Vector <String> fila = new Vector<String>(); 
            fila.add(consulta.getString(1));
            fila.add(consulta.getString(2));
            fila.add(consulta.getString(3));
            fila.add(consulta.getString(4));
            fila.add(consulta.getString(5));
            fila.add(consulta.getString(6));
            fila.add(consulta.getString(7));
            fila.add(consulta.getString(8));
            
            
            usuarios.add(fila);
        }
        bdControlador.BdControlador.liberarConexion(conexion);
        
        return usuarios;
    }
    
  
    public static boolean esAdministradorUsuario(String us, String ps) throws ClassNotFoundException, SQLException
    {
        java.sql.Statement estado = null;

        estado = bdControlador.BdControlador.establecerConexion().createStatement();

        ResultSet resultados = estado.executeQuery("SELECT * FROM usuarios WHERE " +
                "usuario" + " ='" + us + "' AND " + "password" + " ='" + ps + "' AND" + " tipo" +
                " = '" + "administrador" + "';");
        
        if (resultados.first())
            return true;

        return false;
    }
    
    
    public static boolean  eliminarUsuario(int codigo) throws SQLException, ClassNotFoundException
    {
        java.sql.Statement estado = null;

        estado = bdControlador.BdControlador.establecerConexion().createStatement();
        estado.executeUpdate("DELETE FROM usuarios WHERE codigo='" + codigo + "';");
        return true;
    }

   public static ResultSet buscarEspecifico(
            String cDni,
            String pNom,
            String sNom,
            String pAp,
            String sAp,
            String tip,
            String usu,
            String pass
            ) throws SQLException, ClassNotFoundException



    {

        java.sql.Statement estado = null;
        estado = bdControlador.BdControlador.establecerConexion().createStatement();

        

        ResultSet resultado = estado.executeQuery("select * from usuarios where " +
                                        "dni" + "=" + cDni + " AND " +
                                        "pNombre" + "=" + pNom + " AND "+
                                        "sNombre" + "=" + sNom + " AND "+
                                        "pApellido" + "=" + pAp + " AND "+
                                        "sApellido" + "=" + sAp + " AND "+
                                        "tipo" + "=" + tip + " AND "+
                                        "usuario" + "=" + usu + " AND "+
                                        "password" + "=" + pass +";");

       

      return resultado;

    }
   




}
